package com.example.dqdq.lzyim_asm_tvapp.adapter;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.util.Log;
import android.widget.TextView;
//可控制滚动速度
public class MarqueeText extends TextView implements Runnable {
    private int currentScrollX;// 当前滚动的位置
    private boolean isStop = false;
    private int textWidth;
    private boolean isMeasure = false;
    public MarqueeText(Context context) {
        super(context);
// TODO Auto-generated constructor stub
    }
    public MarqueeText(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    public MarqueeText(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }
    @Override
    protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
        super.onDraw(canvas);
        if (!isMeasure) {// 文字宽度只需获取一次就可以了
            getTextWidth();
            isMeasure = true;
        }
    }
    /**
     * 获取文字宽度
     */
    private void getTextWidth() {
        Paint paint = this.getPaint();
        String str = this.getText().toString();
        textWidth = (int) paint.measureText(str);
    }
    @Override
    public void run() {
        currentScrollX += 4;// 滚动速度
        scrollTo(currentScrollX, 0);
        if (isStop) {
            return;
        }
//        if (getScrollX() >= (this.getWidth())) {
//            scrollTo(0, 0);
//            currentScrollX = textWidth;
//// return;
//        }

        if (getScrollX() >= textWidth) {
            scrollTo(-(this.getWidth()), 0);
            currentScrollX = -(this.getWidth());
// return;
        }
        Log.e("Test one",String.valueOf(currentScrollX));
        Log.e("Test two",String.valueOf(textWidth));
        Log.e("Test three",String.valueOf(this.getWidth()));
        Log.e("Test fwo",String.valueOf(getScrollX()));
        postDelayed(this, 5);
    }
    // 开始滚动
    public void startScroll() {
        isStop = false;
        this.removeCallbacks(this);
        post(this);
    }
    // 停止滚动
    public void stopScroll() {
        isStop = true;
    }
    // 从头开始滚动
    public void startFor0() {
        currentScrollX = 0;
        startScroll();
    }

}
